Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Commit 2385cbfa93d31e2ffd83cb2f1d412b0dc8571950


Parents : c96220e
Author : Ivan <ivan@quad4.io>
Signature : Invalid signer <e46112d44649266d71fe2193e00a4710>, author is <ivan@quad4.io>
Date : 2026-07-04T17:16:43-05:00

chore(locales): update dependency management references from Poetry to UV across multiple language README files

Changes

5 files changed, 70 insertions(+), 70 deletions(-)


Diff

diff --git a/lang/README.de.md b/lang/README.de.md
index a37ba6a3..b6e97059 100644
--- a/lang/README.de.md
+++ b/lang/README.de.md
@@ -31,7 +31,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- Electron 41.x (mit Node-24-Laufzeit)
- `.whl`-Pakete mit Webserver und eingebauten Frontend-Assets fuer mehr Deploy-Optionen
- i18n
-- PNPM und Poetry fuer Abhaengigkeiten
+- PNPM und UV fuer Abhaengigkeiten
> [!WARNING]
> MeshChatX garantiert keine Datenkompatibilitaet mit aelteren Reticulum-MeshChat-Versionen. Erstellen Sie vor Migration oder Tests eine Datensicherung.
@@ -44,7 +44,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- Python `>=3.11` (aus `pyproject.toml`)
- Node.js `>=24` (aus `package.json`, Feld `engines`)
- pnpm `11.1.2` (aus `package.json`, Feld `packageManager`)
-- Poetry (verwendet in `Taskfile.yml` und CI-Workflows)
+- UV (verwendet in `Taskfile.yml` und CI-Workflows)
**Browser Versions Required:**
@@ -180,13 +180,13 @@ Hinweise zu den Installationsbefehlen:
- `verify-store-integrity=true` ist auch in der projektweiten `pnpm-workspace.yaml` gesetzt; die explizite `pnpm config set`-Zeile haertet zusaetzlich die Benutzerkonfiguration.
- Lifecycle-Skripte (`preinstall`/`postinstall`) sind in pnpm v11+ standardmaessig blockiert. Nur die unter `allowBuilds` in `pnpm-workspace.yaml` aufgefuehrten Pakete duerfen Installationsskripte ausfuehren (aktuell `electron`, `electron-winstaller`, `esbuild`).
- `uv lock --check` schlaegt frueh fehl, wenn `uv.lock` nicht mit `pyproject.toml` synchron ist; `uv sync --group dev` aufloest danach nur aus der Lockdatei.
-- Fuer eine strikte Lockfile-Installation (ohne implizite Lock-Aktualisierung) Poetry mit `pip install "uv==0.11.15"` pinnen, passend zur CI-Version.
+- Fuer eine strikte Lockfile-Installation (ohne implizite Lock-Aktualisierung) UV mit `pip install "uv==0.11.15"` pinnen, passend zur CI-Version.
Wenn Sie absichtlich Abhaengigkeiten aktualisieren wollen, fuehren Sie `pnpm update` / `uv lock` in einem dedizierten Commit aus und pruefen Sie das resultierende Lockdatei-Diff vor dem Push.
## Sandboxing (Linux)
-Um das native `meshchatx`-Programm (Alias: `meshchat`) mit zusaetzlicher Dateisystem-Isolation auszufuehren, koennen Sie **Firejail** oder **Bubblewrap** (`bwrap`) nutzen, bei weiterhin normalem Netzwerkzugriff fuer Reticulum und die Web-Oberflaeche. Vollstaendige Beispiele (pip/pipx, Poetry, Hinweise zu USB-Seriell) finden Sie in:
+Um das native `meshchatx`-Programm (Alias: `meshchat`) mit zusaetzlicher Dateisystem-Isolation auszufuehren, koennen Sie **Firejail** oder **Bubblewrap** (`bwrap`) nutzen, bei weiterhin normalem Netzwerkzugriff fuer Reticulum und die Web-Oberflaeche. Vollstaendige Beispiele (pip/pipx, UV, Hinweise zu USB-Seriell) finden Sie in:
- [`docs/meshchatx_linux_sandbox.md`](../docs/meshchatx_linux_sandbox.md)
@@ -234,7 +234,7 @@ task dist:fe:rpm
## Container-Build (Wheel, AppImage, deb, rpm)
-`Dockerfile.build` fuehrt die gleichen Schritte wie die CI aus (Poetry, pnpm, `task`, APT-Paketabhaengigkeiten). Ausgelegt auf **linux/amd64** (NodeSource amd64, Task amd64). Standardziel ist alles; per Build-Arg ueberschreibbar.
+`Dockerfile.build` fuehrt die gleichen Schritte wie die CI aus (uv, pnpm, `task`, APT-Paketabhaengigkeiten). Ausgelegt auf **linux/amd64** (NodeSource amd64, Task amd64). Standardziel ist alles; per Build-Arg ueberschreibbar.
Werte fuer `MESHCHATX_BUILD_TARGETS`: `all` (Standard), `wheel` oder `electron` (AppImage + deb fuer x64 und arm64, RPM best-effort, kein wheel).
@@ -333,16 +333,16 @@ task test:all
task build:all
```
-`Makefile`-Kurzformen:
+`Makefile`-Ziele sind duenne Wrapper, die an `task` delegieren (gleiche Befehle wie oben):
-| Befehl | Beschreibung |
-| -------------- | --------------------------------------------- |
-| `make install` | pnpm- und Poetry-Abhaengigkeiten installieren |
-| `make run` | MeshChatX ueber Poetry starten |
-| `make build` | Frontend bauen |
-| `make lint` | eslint und ruff ausfuehren |
-| `make test` | Frontend- und Backend-Tests |
-| `make clean` | Build-Artefakte und node_modules entfernen |
+| Befehl | Delegiert an | Beschreibung |
+| -------------- | --------------- | --------------------------------------------------------- |
+| `make install` | `task install` | pnpm- und UV-Abhaengigkeiten installieren |
+| `make run` | `task run` | MeshChatX ueber UV starten |
+| `make build` | `task build` | Frontend- und Backend-Artefakte bauen |
+| `make lint` | `task lint:all` | ESLint, vue-tsc, knip, Ruff und basedpyright |
+| `make test` | `task test:all` | Frontend- und Backend-Tests |
+| `make clean` | `task clean` | Build-Artefakte und node_modules entfernen |
## Versionierung

diff --git a/lang/README.it.md b/lang/README.it.md
index 6cee8552..13be340e 100644
--- a/lang/README.it.md
+++ b/lang/README.it.md
@@ -31,7 +31,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- Electron 41.x (runtime Node 24 incluso)
- Wheel `.whl` con web server e asset frontend integrati per piu opzioni di deploy
- i18n
-- PNPM e Poetry per le dipendenze
+- PNPM e UV per le dipendenze
> [!WARNING]
> MeshChatX non garantisce la compatibilita dei dati con le versioni precedenti di Reticulum MeshChat. Eseguire un backup prima della migrazione o dei test.
@@ -44,7 +44,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- Python `>=3.11` (da `pyproject.toml`)
- Node.js `>=24` (da `package.json`, campo `engines`)
- pnpm `11.1.2` (da `package.json`, campo `packageManager`)
-- Poetry (utilizzato in `Taskfile.yml` e nei workflow CI)
+- UV (utilizzato in `Taskfile.yml` e nei workflow CI)
**Browser Versions Required:**
@@ -180,13 +180,13 @@ Note sui comandi di installazione:
- `verify-store-integrity=true` e' impostato anche nel `pnpm-workspace.yaml` del progetto; la riga esplicita `pnpm config set` rafforza inoltre la configurazione utente.
- Gli script di lifecycle (`preinstall`/`postinstall`) sono bloccati di default in pnpm v11+. Solo i pacchetti elencati in `allowBuilds` di `pnpm-workspace.yaml` possono eseguire script di installazione (attualmente `electron`, `electron-winstaller`, `esbuild`).
- `uv lock --check` fallisce subito se `uv.lock` non e' allineato con `pyproject.toml`; `uv sync --group dev` risolve poi solo dal lockfile.
-- Per un'installazione Poetry strettamente basata sul lockfile (senza refresh implicito), fissa Poetry con `pip install "uv==0.11.15"`, in linea con la CI.
+- Per un'installazione UV strettamente basata sul lockfile (senza refresh implicito), fissa UV con `pip install "uv==0.11.15"`, in linea con la CI.
Se vuoi aggiornare intenzionalmente le dipendenze, esegui `pnpm update` / `uv lock` in un commit dedicato e rivedi il diff del lockfile prima del push.
## Esecuzione in sandbox (Linux)
-Per eseguire il binario nativo `meshchatx` (alias: `meshchat`) con isolamento aggiuntivo del filesystem, puoi usare **Firejail** o **Bubblewrap** (`bwrap`) mantenendo l'accesso di rete normale per Reticulum e l'interfaccia web. Esempi completi (pip/pipx, Poetry, note sulla seriale USB) sono in:
+Per eseguire il binario nativo `meshchatx` (alias: `meshchat`) con isolamento aggiuntivo del filesystem, puoi usare **Firejail** o **Bubblewrap** (`bwrap`) mantenendo l'accesso di rete normale per Reticulum e l'interfaccia web. Esempi completi (pip/pipx, UV, note sulla seriale USB) sono in:
- [`docs/meshchatx_linux_sandbox.md`](../docs/meshchatx_linux_sandbox.md)
@@ -234,7 +234,7 @@ task dist:fe:rpm
## Build container (wheel, AppImage, deb, rpm)
-`Dockerfile.build` esegue le stesse fasi usate in CI (Poetry, pnpm, `task`, dipendenze APT). Orientato a **linux/amd64** (tarball NodeSource amd64, Task amd64). Il target predefinito e completo; si puo sovrascrivere con un build-arg.
+`Dockerfile.build` esegue le stesse fasi usate in CI (uv, pnpm, `task`, dipendenze APT). Orientato a **linux/amd64** (tarball NodeSource amd64, Task amd64). Il target predefinito e completo; si puo sovrascrivere con un build-arg.
Valori per `MESHCHATX_BUILD_TARGETS`: `all` (default), `wheel` o `electron` (AppImage + deb per x64 e arm64, RPM se possibile, senza wheel).
@@ -333,16 +333,16 @@ task test:all
task build:all
```
-Scorciatoie `Makefile`:
+I target `Makefile` sono wrapper sottili che delegano a `task` (stessi comandi di sopra):
-| Comando | Descrizione |
-| -------------- | ----------------------------------------- |
-| `make install` | Installa dipendenze pnpm e UV |
-| `make run` | Esegue MeshChatX tramite UV |
-| `make build` | Compila il frontend |
-| `make lint` | Esegue eslint e ruff |
-| `make test` | Test frontend e backend |
-| `make clean` | Rimuove artefatti di build e node_modules |
+| Comando | Delega a | Descrizione |
+| -------------- | --------------- | ----------------------------------------------------- |
+| `make install` | `task install` | Installa dipendenze pnpm e UV |
+| `make run` | `task run` | Esegue MeshChatX tramite UV |
+| `make build` | `task build` | Compila artefatti frontend e backend |
+| `make lint` | `task lint:all` | ESLint, vue-tsc, knip, Ruff e basedpyright |
+| `make test` | `task test:all` | Test frontend e backend |
+| `make clean` | `task clean` | Rimuove artefatti di build e node_modules |
## Versionamento

diff --git a/lang/README.ja.md b/lang/README.ja.md
index 81342b3c..fa53e661 100644
--- a/lang/README.ja.md
+++ b/lang/README.ja.md
@@ -31,7 +31,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- Electron 41.x(同梱 Node 24 ランタイム)
- Web サーバーと同梱フロントエンドを含む `.whl` によりデプロイの選択肢を拡張
- i18n
-- 依存関係管理に PNPM と Poetry
+- 依存関係管理に PNPM と UV
> [!WARNING]
> MeshChatX は旧バージョンの Reticulum MeshChat とのデータ互換性を保証しません。マイグレーションやテスト前にデータをバックアップしてください。
@@ -44,7 +44,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- Python `>=3.11`(`pyproject.toml` より)
- Node.js `>=24`(`package.json` の `engines`)
- pnpm `11.1.2`(`package.json` の `packageManager`)
-- Poetry(`Taskfile.yml` および CI ワークフローで使用)
+- UV(`Taskfile.yml` および CI ワークフローで使用)
**Browser Versions Required:**
@@ -180,13 +180,13 @@ uv run python -m meshchatx.meshchat --headless --host 127.0.0.1
- `verify-store-integrity=true` はプロジェクトの `pnpm-workspace.yaml` にも設定されています。上記の `pnpm config set` の行はユーザー設定側も明示的に固めるためのものです。
- pnpm v11 以降、ライフサイクルスクリプト (`preinstall`/`postinstall`) はデフォルトでブロックされます。インストールスクリプトを実行できるのは `pnpm-workspace.yaml` の `allowBuilds` に列挙されたパッケージ(現在 `electron`、`electron-winstaller`、`esbuild`)だけです。
- `uv lock --check` は `uv.lock` と `pyproject.toml` が同期していない場合に即時失敗します。その後の `uv sync --group dev` はロックファイルからのみ解決します。
-- 厳密にロックファイルだけで Poetry をインストールしたい場合は、CI と揃えるために `pip install "uv==0.11.15"` で Poetry バージョンを固定してください。
+- 厳密にロックファイルだけで UV をインストールしたい場合は、CI と揃えるために `pip install "uv==0.11.15"` で UV バージョンを固定してください。
意図的に依存を更新する場合は、`pnpm update` / `uv lock` を専用コミットで実行し、push 前にロックファイルの diff を必ず確認してください。
## サンドボックスで実行(Linux)
-ネイティブの `meshchatx`(エイリアス: `meshchat`)をファイルシステムをより隔離した状態で動かすには、Reticulum と Web UI 向けの通常のネットワークアクセスを保ちつつ **Firejail** または **Bubblewrap**(`bwrap`)を使えます。詳しい例(pip/pipx、Poetry、USB シリアルの注意)は次を参照:
+ネイティブの `meshchatx`(エイリアス: `meshchat`)をファイルシステムをより隔離した状態で動かすには、Reticulum と Web UI 向けの通常のネットワークアクセスを保ちつつ **Firejail** または **Bubblewrap**(`bwrap`)を使えます。詳しい例(pip/pipx、UV、USB シリアルの注意)は次を参照:
- [`docs/meshchatx_linux_sandbox.md`](../docs/meshchatx_linux_sandbox.md)
@@ -234,7 +234,7 @@ task dist:fe:rpm
## コンテナビルド(wheel、AppImage、deb、rpm)
-`Dockerfile.build` は CI と同じ手順(Poetry、pnpm、`task`、APT 依存)を実行します。**linux/amd64** 向け(NodeSource の amd64 tarball、Task の amd64 バイナリ)。デフォルトは全ターゲット。build-arg で上書き可能。
+`Dockerfile.build` は CI と同じ手順(uv、pnpm、`task`、APT 依存)を実行します。**linux/amd64** 向け(NodeSource の amd64 tarball、Task の amd64 バイナリ)。デフォルトは全ターゲット。build-arg で上書き可能。
`MESHCHATX_BUILD_TARGETS` の値: `all`(既定)、`wheel`、または `electron`(x64 / arm64 の AppImage + deb、RPM はベストエフォート、wheel なし)。
@@ -333,16 +333,16 @@ task test:all
task build:all
```
-`Makefile` のショートカット:
+`Makefile` のターゲットは `task` に委譲する薄いラッパーです(上記と同じコマンド):
-| コマンド | 説明 |
-| -------------- | ------------------------------------ |
-| `make install` | pnpm と UV の依存関係をインストール |
-| `make run` | UV 経由で MeshChatX を実行 |
-| `make build` | フロントエンドをビルド |
-| `make lint` | eslint と ruff を実行 |
-| `make test` | フロントエンドとバックエンドのテスト |
-| `make clean` | ビルド成果物と node_modules を削除 |
+| コマンド | 委譲先 | 説明 |
+| -------------- | --------------- | ------------------------------------------------------ |
+| `make install` | `task install` | pnpm と UV の依存関係をインストール |
+| `make run` | `task run` | UV 経由で MeshChatX を実行 |
+| `make build` | `task build` | フロントエンドとバックエンドの成果物をビルド |
+| `make lint` | `task lint:all` | ESLint、vue-tsc、knip、Ruff、basedpyright |
+| `make test` | `task test:all` | フロントエンドとバックエンドのテスト |
+| `make clean` | `task clean` | ビルド成果物と node_modules を削除 |
## バージョン管理

diff --git a/lang/README.ru.md b/lang/README.ru.md
index 2e603402..b41f1485 100644
--- a/lang/README.ru.md
+++ b/lang/README.ru.md
@@ -31,7 +31,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- Electron 41.x (встроенная среда Node 24)
- Колёса `.whl` с веб-сервером и встроенным фронтендом для разных сценариев развёртывания
- i18n
-- PNPM и Poetry для зависимостей
+- PNPM и UV для зависимостей
> [!WARNING]
> MeshChatX не гарантирует совместимость данных со старыми версиями Reticulum MeshChat. Сделайте резервную копию перед миграцией или тестированием.
@@ -44,7 +44,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- Python `>=3.11` (из `pyproject.toml`)
- Node.js `>=24` (из `package.json`, поле `engines`)
- pnpm `11.1.2` (из `package.json`, поле `packageManager`)
-- Poetry (используется в `Taskfile.yml` и CI)
+- UV (используется в `Taskfile.yml` и CI)
**Browser Versions Required:**
@@ -180,13 +180,13 @@ uv run python -m meshchatx.meshchat --headless --host 127.0.0.1
- `verify-store-integrity=true` уже задан в `pnpm-workspace.yaml` проекта; явный `pnpm config set` дополнительно ужесточает пользовательскую конфигурацию.
- Lifecycle-скрипты (`preinstall`/`postinstall`) по умолчанию заблокированы в pnpm v11+. Скрипты установки могут запускать только пакеты из `allowBuilds` в `pnpm-workspace.yaml` (сейчас `electron`, `electron-winstaller`, `esbuild`).
- `uv lock --check` сразу падает, если `uv.lock` не синхронизирован с `pyproject.toml`; затем `uv sync --group dev` ставит зависимости только из lock-файла.
-- Для строгой установки Poetry только из lock-файла зафиксируйте версию Poetry через `pip install "uv==0.11.15"`, как это делает CI.
+- Для строгой установки только из lock-файла зафиксируйте UV через `pip install "uv==0.11.15"`, как это делает CI.
Если вы намеренно хотите обновить зависимости, выполните `pnpm update` / `uv lock` отдельным коммитом и проверьте diff lock-файлов до пуша.
## Запуск в песочнице (Linux)
-Чтобы запускать нативный `meshchatx` (псевдоним: `meshchat`) с дополнительной изоляцией файловой системы, можно использовать **Firejail** или **Bubblewrap** (`bwrap`), сохраняя обычный сетевой доступ для Reticulum и веб-интерфейса. Полные примеры (pip/pipx, Poetry, USB-serial) в:
+Чтобы запускать нативный `meshchatx` (псевдоним: `meshchat`) с дополнительной изоляцией файловой системы, можно использовать **Firejail** или **Bubblewrap** (`bwrap`), сохраняя обычный сетевой доступ для Reticulum и веб-интерфейса. Полные примеры (pip/pipx, UV, USB-serial) в:
- [`docs/meshchatx_linux_sandbox.md`](../docs/meshchatx_linux_sandbox.md)
@@ -234,7 +234,7 @@ task dist:fe:rpm
## Сборка в контейнере (wheel, AppImage, deb, rpm)
-`Dockerfile.build` выполняет те же шаги, что и CI (Poetry, pnpm, `task`, пакетные зависимости APT). Ориентирован на **linux/amd64** (NodeSource amd64, Task amd64). Цель по умолчанию: всё; её можно переопределить build-arg.
+`Dockerfile.build` выполняет те же шаги, что и CI (uv, pnpm, `task`, пакетные зависимости APT). Ориентирован на **linux/amd64** (NodeSource amd64, Task amd64). Цель по умолчанию: всё; её можно переопределить build-arg.
Для `MESHCHATX_BUILD_TARGETS` доступны: `all` (по умолчанию), `wheel` или `electron` (AppImage + deb для x64 и arm64, RPM по возможности, без wheel).
@@ -333,16 +333,16 @@ task test:all
task build:all
```
-Сокращения `Makefile`:
+Цели `Makefile` — тонкие обёртки, делегирующие в `task` (те же команды, что выше):
-| Команда | Описание |
-| -------------- | --------------------------------------- |
-| `make install` | Установить зависимости pnpm и UV |
-| `make run` | Запуск MeshChatX через UV |
-| `make build` | Сборка фронтенда |
-| `make lint` | eslint и ruff |
-| `make test` | Тесты фронтенда и бэкенда |
-| `make clean` | Удалить артефакты сборки и node_modules |
+| Команда | Делегирует в | Описание |
+| -------------- | --------------- | ----------------------------------------------------- |
+| `make install` | `task install` | Установить зависимости pnpm и UV |
+| `make run` | `task run` | Запуск MeshChatX через UV |
+| `make build` | `task build` | Сборка артефактов фронтенда и бэкенда |
+| `make lint` | `task lint:all` | ESLint, vue-tsc, knip, Ruff и basedpyright |
+| `make test` | `task test:all` | Тесты фронтенда и бэкенда |
+| `make clean` | `task clean` | Удалить артефакты сборки и node_modules |
## Версионирование

diff --git a/lang/README.zh.md b/lang/README.zh.md
index 85e0daf1..ae11cb33 100644
--- a/lang/README.zh.md
+++ b/lang/README.zh.md
@@ -31,7 +31,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- 使用 Electron 41.x(内置 Node 24 运行时)
- `.whl` 内置 Web 服务器与前端资源,便于多种部署方式
- i18n
-- 使用 PNPM 与 Poetry 管理依赖
+- 使用 PNPM 与 UV 管理依赖
> [!WARNING]
> MeshChatX 不保证与旧版 Reticulum MeshChat 的数据兼容。迁移或测试前请备份数据。
@@ -44,7 +44,7 @@ MeshChatX NomadNet Node: `c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu`
- Python `>=3.11`(来自 `pyproject.toml`)
- Node.js `>=24`(来自 `package.json` 的 `engines`)
- pnpm `11.1.2`(来自 `package.json` 的 `packageManager`)
-- Poetry(用于 `Taskfile.yml` 与 CI 工作流)
+- UV(用于 `Taskfile.yml` 与 CI 工作流)
**Browser Versions Required:**
@@ -180,13 +180,13 @@ uv run python -m meshchatx.meshchat --headless --host 127.0.0.1
- `verify-store-integrity=true` 已在项目的 `pnpm-workspace.yaml` 中设置;显式的 `pnpm config set` 行同时加固用户级配置。
- pnpm v11+ 默认禁用所有生命周期脚本(`preinstall`/`postinstall`)。仅 `pnpm-workspace.yaml` 中 `allowBuilds` 列出的包允许执行安装脚本(当前为 `electron`、`electron-winstaller`、`esbuild`)。
- `uv lock --check` 会在 `uv.lock` 与 `pyproject.toml` 不同步时立即失败;随后的 `uv sync --group dev` 只会从 lock 文件解析依赖。
-- 若需严格按 lock 文件安装 Poetry 依赖(不进行隐式刷新),用 `pip install "uv==0.11.15"` 固定 Poetry 版本,与 CI 保持一致。
+- 若需严格按 lock 文件安装 UV(不进行隐式刷新),用 `pip install "uv==0.11.15"` 固定 UV 版本,与 CI 保持一致。
如果确有意愿更新依赖,请在独立提交中运行 `pnpm update` / `uv lock`,并在推送前审查生成的 lock 文件 diff。
## 在沙盒中运行(Linux)
-若要在额外隔离文件系统的情况下运行原生 `meshchatx`(别名:`meshchat`),可使用 **Firejail** 或 **Bubblewrap**(`bwrap`),同时保留 Reticulum 与 Web 界面所需的网络访问。完整示例(pip/pipx、Poetry、USB 串口说明)见:
+若要在额外隔离文件系统的情况下运行原生 `meshchatx`(别名:`meshchat`),可使用 **Firejail** 或 **Bubblewrap**(`bwrap`),同时保留 Reticulum 与 Web 界面所需的网络访问。完整示例(pip/pipx、UV、USB 串口说明)见:
- [`docs/meshchatx_linux_sandbox.md`](../docs/meshchatx_linux_sandbox.md)
@@ -234,7 +234,7 @@ task dist:fe:rpm
## 容器构建(wheel、AppImage、deb、rpm)
-`Dockerfile.build` 执行与 CI 相同的步骤(Poetry、pnpm、`task`、APT 等)。面向 **linux/amd64**(NodeSource amd64 压缩包、Task amd64 二进制)。默认目标为全部;可用 build 参数覆盖。
+`Dockerfile.build` 执行与 CI 相同的步骤(uv、pnpm、`task`、APT 等)。面向 **linux/amd64**(NodeSource amd64 压缩包、Task amd64 二进制)。默认目标为全部;可用 build 参数覆盖。
`MESHCHATX_BUILD_TARGETS` 可选:`all`(默认)、`wheel` 或 `electron`(x64 与 arm64 的 AppImage + deb、尽力构建 RPM、不含 wheel)。
@@ -333,16 +333,16 @@ task test:all
task build:all
```
-`Makefile` 快捷方式:
+`Makefile` 目标为委托给 `task` 的薄封装(与上文命令相同):
-| 命令 | 说明 |
-| -------------- | --------------------------- |
-| `make install` | 安装 pnpm 与 UV 依赖 |
-| `make run` | 通过 UV 运行 MeshChatX |
-| `make build` | 构建前端 |
-| `make lint` | 运行 eslint 与 ruff |
-| `make test` | 运行前端与后端测试 |
-| `make clean` | 移除构建产物与 node_modules |
+| 命令 | 委托至 | 说明 |
+| -------------- | --------------- | ----------------------------------------- |
+| `make install` | `task install` | 安装 pnpm 与 UV 依赖 |
+| `make run` | `task run` | 通过 UV 运行 MeshChatX |
+| `make build` | `task build` | 构建前端与后端产物 |
+| `make lint` | `task lint:all` | ESLint、vue-tsc、knip、Ruff 与 basedpyright |
+| `make test` | `task test:all` | 运行前端与后端测试 |
+| `make clean` | `task clean` | 移除构建产物与 node_modules |
## 版本管理


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────